package com.zsc.edu.testrecyclerview;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import java.util.List;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

class RecyclerViewAdapter extends RecyclerView.Adapter<MyItemViewHolder>{

    List<MyItem> mMyItemList;

    public RecyclerViewAdapter(List<MyItem> myItemList) {
        mMyItemList = myItemList;
    }

    @NonNull
    @Override
    public MyItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        // 单项的布局的资源id, 将其 inflate 出来
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item, parent, false);

        // 构造 MyItemViewHolder
        final MyItemViewHolder myItemViewHolder = new MyItemViewHolder(view);


        // 点击 新闻大图
        myItemViewHolder.iv_img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 当前click的位置
                int position = myItemViewHolder.getAdapterPosition();
                // 获得数据
                MyItem myItem = mMyItemList.get(position);
                // Toast 新闻内容
                Toast.makeText(v.getContext(), myItem.getNews(),
                        Toast.LENGTH_SHORT).show();
            }
        });

        // 点击 热度小图片
        myItemViewHolder.iv_hot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 当前click的位置
                int position = myItemViewHolder.getAdapterPosition();
                MyItem myItem = mMyItemList.get(position);
                // 每click一次，hot 加1
                // 仅仅改变数据
                myItem.setHot(myItem.getHot() + 1);
                // 发出通知，让UI更新
                notifyDataSetChanged();
            }
        });


        return myItemViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyItemViewHolder holder, int position) {
        // 获得当前位置的数据
        MyItem myItem = mMyItemList.get(position);

        // 新闻文本内容
        holder.tv_news.setText(myItem.getNews());
        // 热度小图片
        holder.iv_hot.setImageResource(myItem.getHot_img());
        // 分享小图片
        holder.iv_share.setImageResource(myItem.getShare_img());
        // 新闻大图片
        holder.iv_img.setImageResource(myItem.getImg());
        // 热度值
        holder.tv_hot.setText(""+myItem.getHot()); // 把int转成string
        // 分享数量
        holder.tv_share.setText(""+myItem.getShare()); // 把int转成string
    }

    @Override
    public int getItemCount() {
        return mMyItemList.size();
    }
}
